package com.bdqn.design.singleton;

/**
 * Singleton [饿汉式]单例模式，整个程序中只有一个对象
 *
 * @author LILIBO
 * @since 2025/1/8
 */
public class Singleton01 {

    /**
     * 静态变量，该类的唯一实例（类创建时执行，JVM保障只执行一次）
     */
    private static final Singleton01 singleton = new Singleton01();

    private String message;

    /**
     * 私有化构造器
     */
    private Singleton01() {
        this.message = "100G ...";
    }

    public static Singleton01 getInstance() {
        return singleton;
    }

    // 模拟序号
    private int index = 0;

    /**
     * 获取下一个序号
     *
     * @return
     */
    public synchronized int next() {
        return ++index;
    }

}
